package luc.marche.au.ski;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.http.*;
import com.google.appengine.api.xmpp.JID;
import com.google.appengine.api.xmpp.Message;
import com.google.appengine.api.xmpp.MessageBuilder;
import com.google.appengine.api.xmpp.SendResponse;
import com.google.appengine.api.xmpp.XMPPService;
import com.google.appengine.api.xmpp.XMPPServiceFactory;

@SuppressWarnings("serial")
public class SendChatMessage extends HttpServlet {
	public void doGet(HttpServletRequest req, HttpServletResponse response) throws IOException {
		String destinataire = "aubert.pierrevincent@gmail.com";
		response.setContentType("text/html");
		PrintWriter page = response.getWriter();
		
		page.println("<body>");

		// Le message est passé en parametre à la servlet
		String message = req.getParameter("message");
		if (message == null)
			message = "Message vide";

		JID jid = new JID(destinataire);
		Message msg = new MessageBuilder().withRecipientJids(jid).withBody(message).build();

		XMPPService xmpp = XMPPServiceFactory.getXMPPService();
		if (xmpp.getPresence(jid).isAvailable()) {
			SendResponse status = xmpp.sendMessage(msg);
			boolean messageSent = (status.getStatusMap().get(jid) == SendResponse.Status.SUCCESS);
			page.printf("<p>Status : %s</p>", status.getStatusMap().get(jid).toString());
			if (!messageSent) {
				page.printf("<p>Le message %s n'a pas été envoyé", message);
			} else {
				page.printf("<p>Le message %s a  été envoyé</p>", message);
			}
		} else {
			page.printf("<p>L'utilisateur %s n'est pas connecté", destinataire);			
		}


		page.println("<p><a href=..>Retour au menu</a></p>");		
		page.println("</body>");
	}
}